% PDF字体设置 - 统一中英文字号 + 安全字符替换
% 作者: 张立强
% 日期: 2025-11-03

% 使用xeCJK包来更好地控制中英文字体
\usepackage{xeCJK}

% 使用fontspec包来设置字体
\usepackage{fontspec}

% 设置中文字体
\setCJKmainfont{PingFang SC}[
  BoldFont=PingFang SC Semibold,
  ItalicFont=PingFang SC Light,
  Scale=1.0
]

% 设置英文字体
\setmainfont{Times New Roman}[
  BoldFont=Times New Roman Bold,
  ItalicFont=Times New Roman Italic,
  Scale=1.0
]

% 设置等宽字体（代码，使用Menlo支持希腊字母）
\setmonofont{Menlo}[
  Scale=0.9
]

% 设置无衬线字体
\setsansfont{Arial}[
  BoldFont=Arial Bold,
  ItalicFont=Arial Italic,
  Scale=1.0
]

% 使用newunicodechar包来替换不安全的emoji为安全符号
\usepackage{newunicodechar}

% 定义安全的替换符号（使用中文标记和安全Unicode符号）
% Emoji替换
\newunicodechar{📋}{【目录】}
\newunicodechar{📊}{【数据】}
\newunicodechar{📈}{【分析】}
\newunicodechar{📉}{【趋势】}
\newunicodechar{💡}{【提示】}
\newunicodechar{🎯}{【目标】}
\newunicodechar{✅}{[√]}
\newunicodechar{❌}{[×]}
\newunicodechar{⚠}{[!]}
\newunicodechar{🎓}{【学习】}
\newunicodechar{💻}{【代码】}
\newunicodechar{🏆}{【成就】}
\newunicodechar{⭐}{[*]}
\newunicodechar{📝}{【任务】}
\newunicodechar{📄}{【文档】}
\newunicodechar{🔧}{【工具】}
\newunicodechar{🔍}{【检查】}
\newunicodechar{💰}{【价值】}
\newunicodechar{📚}{【知识】}
\newunicodechar{🔬}{【研究】}
\newunicodechar{🌟}{【亮点】}
\newunicodechar{📖}{【书籍】}
\newunicodechar{📅}{【日期】}
\newunicodechar{🛠}{【工具】}
\newunicodechar{📐}{【公式】}

% 带圈数字替换
\newunicodechar{①}{(1)}
\newunicodechar{②}{(2)}
\newunicodechar{③}{(3)}
\newunicodechar{④}{(4)}
\newunicodechar{⑤}{(5)}
\newunicodechar{⑥}{(6)}
\newunicodechar{⑦}{(7)}
\newunicodechar{⑧}{(8)}
\newunicodechar{⑨}{(9)}
\newunicodechar{⑩}{(10)}

% 下标数字替换（使用LaTeX下标）
\newunicodechar{₀}{\textsubscript{0}}
\newunicodechar{₁}{\textsubscript{1}}
\newunicodechar{₂}{\textsubscript{2}}
\newunicodechar{₃}{\textsubscript{3}}
\newunicodechar{₄}{\textsubscript{4}}
\newunicodechar{₅}{\textsubscript{5}}
\newunicodechar{₆}{\textsubscript{6}}
\newunicodechar{₇}{\textsubscript{7}}
\newunicodechar{₈}{\textsubscript{8}}
\newunicodechar{₉}{\textsubscript{9}}

% 勾叉符号替换
\newunicodechar{✓}{[√]}
\newunicodechar{✗}{[×]}

% 忽略emoji变体选择符
\newunicodechar{️}{}  % U+FE0F - Variation Selector-16

% 确保中英文字号一致
\XeTeXlinebreaklocale "zh"
\XeTeXlinebreakskip = 0pt plus 1pt

% 改进表格样式
\usepackage{booktabs}
\usepackage{longtable}
\usepackage{array}

% 改进代码块样式
\usepackage{fancyvrb}
\usepackage{listings}

% 设置代码块字体大小
\lstset{
  basicstyle=\ttfamily\small,
  breaklines=true,
  breakatwhitespace=true,
  columns=flexible,
  keepspaces=true
}

% 改进页眉页脚
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[L]{\small\leftmark}
\fancyhead[R]{\small\thepage}
\renewcommand{\headrulewidth}{0.4pt}

% 改进章节标题样式
\usepackage{titlesec}

% 一级标题（章）
\titleformat{\section}
  {\normalfont\Large\bfseries}
  {\thesection}{1em}{}

% 二级标题（节）
\titleformat{\subsection}
  {\normalfont\large\bfseries}
  {\thesubsection}{1em}{}

% 三级标题（小节）
\titleformat{\subsubsection}
  {\normalfont\normalsize\bfseries}
  {\thesubsubsection}{1em}{}

% 改进列表样式
\usepackage{enumitem}
\setlist{nosep, leftmargin=2em}

% 改进图片标题
\usepackage{caption}
\captionsetup{
  font=small,
  labelfont=bf,
  format=plain,
  justification=centering
}

% 数学公式支持
\usepackage{amsmath}
\usepackage{amssymb}

% 改进超链接样式
\usepackage{hyperref}
\hypersetup{
  colorlinks=true,
  linkcolor=blue,
  urlcolor=blue,
  citecolor=blue,
  bookmarksnumbered=true,
  bookmarksopen=true,
  pdfstartview=FitH
}

% 改进目录样式
\usepackage{tocloft}
\renewcommand{\cftsecfont}{\normalfont}
\renewcommand{\cftsecpagefont}{\normalfont}
\setlength{\cftbeforesecskip}{0.5em}

% 设置段落间距
\setlength{\parskip}{0.5em}
\setlength{\parindent}{0pt}

% 改进表格列宽
\usepackage{tabularx}
\newcolumntype{Y}{>{\centering\arraybackslash}X}

% 支持颜色
\usepackage{xcolor}
\definecolor{codebackground}{RGB}{248,248,248}
\definecolor{codecomment}{RGB}{0,128,0}
\definecolor{codekeyword}{RGB}{0,0,255}
\definecolor{codestring}{RGB}{163,21,21}

% 改进代码高亮
\lstdefinestyle{mystyle}{
  backgroundcolor=\color{codebackground},
  commentstyle=\color{codecomment},
  keywordstyle=\color{codekeyword},
  stringstyle=\color{codestring},
  basicstyle=\ttfamily\small,
  breakatwhitespace=false,
  breaklines=true,
  captionpos=b,
  keepspaces=true,
  numbers=left,
  numbersep=5pt,
  showspaces=false,
  showstringspaces=false,
  showtabs=false,
  tabsize=2,
  frame=single,
  rulecolor=\color{black!30}
}

\lstset{style=mystyle}

% 改进脚注样式
\usepackage[bottom]{footmisc}
\setlength{\footnotesep}{0.5em}

% 防止过度拉伸
\raggedbottom

% 改进浮动体位置
\usepackage{float}
\floatplacement{figure}{H}
\floatplacement{table}{H}

